home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
IDLIncludes
/
Kernel.idl
< prev
next >
Wrap
Text File
|
1996-05-01
|
8KB
|
287 lines
/*
File: Kernel.idl
Contains: Kernel Interfaces
Version: Technology: System 8
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __KERNEL_IDL__
#define __KERNEL_IDL__
#include <somobj.idl>
#include <somcls.idl>
#ifndef __ERRORS_IDL__
#include <Errors.idl>
#endif
#ifndef __MACHINEEXCEPTIONS_IDL__
#include <MachineExceptions.idl>
#endif
#ifndef __TIMING_IDL__
#include <Timing.idl>
#endif
#ifndef __TYPES_IDL__
#include <Types.idl>
#endif
#ifdef __SOMIDL__
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
/* Kernel basics*/
typedef OpaquePtr AddressSpaceID;
typedef OpaquePtr IOPreparationID;
typedef OpaquePtr SoftwareInterruptID;
typedef OpaquePtr TaskID;
typedef OpaquePtr TimerID;
/* Tasking*/
typedef UInt32 ExecutionLevel;
typedef OpaquePtr SoftwareInterruptHandler;
typedef OpaquePtr SecondaryInterruptHandler2;
/* Memory System basics*/
typedef SOMLargeStruct LogicalAddressRange; /* Derived from a struct of 8 bytes in size */
typedef OpaquePtr LogicalAddressRangePtr; /* Substituted OpaquePtr for ``LogicalAddressRange*'' */
typedef SOMLargeStruct PhysicalAddressRange; /* Derived from a struct of 8 bytes in size */
typedef OpaquePtr PhysicalAddressRangePtr; /* Substituted OpaquePtr for ``PhysicalAddressRange*'' */
/* For PrepareMemoryForIO and CheckpointIO*/
typedef OptionBits IOPreparationOptions;
typedef OptionBits IOPreparationState;
typedef SOMLargeStruct AddressRange; /* Derived from a struct of 8 bytes in size */
/* C's treatment of arrays and array pointers is atypical*/
typedef OpaquePtr LogicalMappingTablePtr; /* Substituted OpaquePtr for ``LogicalAddress*'' */
typedef OpaquePtr PhysicalMappingTablePtr; /* Substituted OpaquePtr for ``PhysicalAddress*'' */
typedef OpaquePtr AddressRangeTablePtr; /* Substituted OpaquePtr for ``AddressRange*'' */
typedef SOMLargeStruct MultipleAddressRange; /* Derived from a struct of 8 bytes in size */
/*
Separate C definition so that union has a name. A future version of the interfacer
tool will allow a name (that gets thrown out in Pascal and Asm).
*/
typedef SOMLargeStruct IOPreparationTable; /* Derived from a struct of 56 bytes in size */
typedef OptionBits IOCheckpointOptions;
/* For SetProcessorCacheMode*/
typedef UInt32 ProcessorCacheMode;
/* For GetPageInformation*/
typedef UInt32 PageStateInformation;
typedef SOMLargeStruct PageInformation; /* Derived from a struct of 12 bytes in size */
typedef OpaquePtr PageInformationPtr; /* Substituted OpaquePtr for ``PageInformation*'' */
#endif
#if FOR_SYSTEM8_PREEMPTIVE
typedef OpaquePtr AreaReservationID;
typedef OpaquePtr BackingObjectID;
typedef OpaquePtr EventGroupID;
typedef OpaquePtr MessageID;
typedef OpaquePtr ObjectID;
typedef OpaquePtr PortID;
typedef OpaquePtr ReceiveID;
typedef OpaquePtr KernelProcessID;
typedef OpaquePtr KernelQueueID;
/* System Information */
typedef SOMLargeStruct SystemInformation; /* Derived from a struct of 60 bytes in size */
typedef OpaquePtr SystemInformationPtr; /* Substituted OpaquePtr for ``SystemInformation*'' */
/* KernelQueue Related Declarations */
typedef OptionBits KernelQueueOptions;
/* Event Flag Related Declarations */
typedef UInt32 EventGroupMask;
typedef UInt32 EventFlagOperation;
typedef SOMLargeStruct KernelNotification; /* Derived from a struct of 24 bytes in size */
typedef OpaquePtr KernelNotificationPtr; /* Substituted OpaquePtr for ``KernelNotification*'' */
/* Task Related Declarations */
typedef OSType KernelProcessName;
typedef OSType TaskName;
typedef OpaquePtr TaskProc;
typedef UInt32 TaskStorageIndex;
typedef OpaquePtr TaskStorageValue; /* Substituted OpaquePtr for ``void*'' */
typedef UInt32 TaskRelationship;
typedef OptionBits SetTaskPriorityOptions;
typedef OptionBits TaskOptions;
/* Priorities are used by CreateTask, SetTaskPriority, and AcceptMessage. */
typedef OptionBits TaskPriority;
typedef OptionBits TerminateOptions;
typedef OSType SchedulerState;
typedef SOMLargeStruct TaskInformation; /* Derived from a struct of 60 bytes in size */
typedef OpaquePtr TaskInformationPtr; /* Substituted OpaquePtr for ``TaskInformation*'' */
typedef OptionBits KernelProcessOptions;
typedef SOMLargeStruct KernelProcessInformation; /* Derived from a struct of 12 bytes in size */
typedef OpaquePtr KernelProcessInformationPtr; /* Substituted OpaquePtr for ``KernelProcessInformation*'' */
/* Timer related declarations */
typedef OptionBits TimerOptions;
/* Address Space Management related declarations */
/* General definitions*/
typedef OptionBits AreaOptions;
typedef OptionBits InterspaceCopyOptions;
typedef UInt32 AreaUsage;
typedef UInt32 MemoryAccessLevel;
typedef UInt64 BackingAddress;
typedef UInt64 BackingLength;
/* For GetSpaceInformation*/
typedef SOMLargeStruct SpaceInformation; /* Derived from a struct of 12 bytes in size */
typedef OpaquePtr SpaceInformationPtr; /* Substituted OpaquePtr for ``SpaceInformation*'' */
/* For GetAreaInformation*/
typedef SOMLargeStruct AreaInformation; /* Derived from a struct of 44 bytes in size */
typedef OpaquePtr AreaInformationPtr; /* Substituted OpaquePtr for ``AreaInformation*'' */
/* For Memory Reservations*/
typedef OptionBits ReservationOptions;
/* For GetReservationInformation*/
typedef SOMLargeStruct ReservationInformation; /* Derived from a struct of 16 bytes in size */
typedef OpaquePtr ReservationInformationPtr; /* Substituted OpaquePtr for ``ReservationInformation*'' */
/* For ControlPagingForRange*/
typedef UInt32 PageControlOperation;
/* For ReleaseData*/
typedef OptionBits ReleaseDataOptions;
/* Message related declarations */
typedef UInt32 MessageType;
/* Kernel Message Types*/
/* Options for CreatePort*/
typedef OptionBits PortOptions;
/* Options for CreateObject*/
typedef OptionBits ObjectOptions;
/* Options for LockObject*/
typedef OptionBits ObjectLockOptions;
/* Options for SetObjectInformation;*/
typedef OptionBits SetObjectOptions;
/* Message System Options */
typedef OptionBits SendOptions;
typedef OptionBits ReceiveOptions;
typedef OptionBits AcceptOptions;
/* Message Definition (Given to receiver or acceptor) */
typedef SOMLargeStruct MessageControlBlock; /* Derived from a struct of 64 bytes in size */
typedef OpaquePtr MessageControlBlockPtr; /* Substituted OpaquePtr for ``MessageControlBlock*'' */
typedef SOMLargeStruct MessageInformation; /* Derived from a struct of 12 bytes in size */
typedef OpaquePtr MessageInformationPtr; /* Substituted OpaquePtr for ``MessageInformation*'' */
/* Message Accept proc used to receive a message */
typedef OpaquePtr MessageAcceptProc;
/* Version for GetPortInformation */
/* Buffer used to return message port information */
typedef SOMLargeStruct PortInformation; /* Derived from a struct of 48 bytes in size */
typedef OpaquePtr PortInformationPtr; /* Substituted OpaquePtr for ``PortInformation*'' */
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
/* Tasks */
/* Software Interrupts */
/* Completion Routines */
/* Secondary Interrupts */
/* Timers */
/* IO related Operations */
/* Memory Operations */
/* Processor Cache Related */
#endif
#if FOR_SYSTEM8_PREEMPTIVE
/* Queues */
/* Event Flag Related Operations */
/* KernelProcess Related Operations */
/* Task Related Operations */
/* Secondary Interrupt Handlers */
/* Timers */
/* Address Space Management */
/* Area Management */
/* Processor Cache Related */
/* Paging control operations */
/* Message Port Management */
/* Message Object Management */
/* Message Transaction Operations */
/* Miscellaneous Messaging operations */
/* Miscellaneous System operations */
/* Notifications */
#endif
#if FOR_SYSTEM8_PREEMPTIVE
/* These are defined in Memory for System 7 */
#endif
#endif /* __SOMIDL__ */
#endif /* __KERNEL_IDL__ */